package com.yuw.service.impl;

import com.yuw.bean.UserInfoBean;
import com.yuw.dao.UserInfoBeanMapper;
import com.yuw.service.IUserInfoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class UserInfoServiceImpl implements IUserInfoService {

    // 使用spring的di功能，进行依赖注入一个dao层的接口的实现类对象
    @Resource
    UserInfoBeanMapper userInfoBeanM;

    @Override
    public List<UserInfoBean> doUserLogin(UserInfoBean userInfoB) {
        // 调用dao层，进行数据库查询操作
        List<UserInfoBean> lstUsers = userInfoBeanM.selectUserInfo4Login(userInfoB);
        // 返回查询结果集
        return lstUsers;
    }

    @Override
    public List<UserInfoBean> queryUserInfoByAjax(UserInfoBean userInfoB) {
        // 调用dao层，进行数据库查询操作
        List<UserInfoBean> lstUsers = userInfoBeanM.queryUserInfoByAjax(userInfoB);
        // 返回查询结果集
        return lstUsers;
    }

    @Override
    public int saveOrUpdateUserInfoByAjax(UserInfoBean userInfoB) {
        // 调用dao层，进行数据库新增或修改操作
        /*
         本方法即完成新增操作也完成修改操作；
         新增和修改的差别：
            如果传递参数 userInfoB 实体类的 userid字段为null值，则说明进行新增操作；
            如果传递参数 userInfoB 实体类的 userid字段不为null值，则说明进行修改操作；
         */
        // 返回值
        int i = 0;

        if(userInfoB != null  && userInfoB.getUserid() != null){
            // 修改操作
            i = userInfoBeanM.updateByPrimaryKeySelective(userInfoB);
        }else{
            // 新增操作
            i = userInfoBeanM.insertSelective(userInfoB);
        }
        // 返回查询结果集
        return i;
    }

    @Override
    public int deleteUserInfoByAjaxLogic(Integer userId) {
        // 调用dao层，进行数据库查询操作
        int i = userInfoBeanM.deleteByPrimaryKeyLogic(userId);
        // 返回查询结果集
        return i;
    }


}
